package edu.northwestern.cbits.purple_robot_manager.probes.builtin; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.PreferenceManager; import android.preference.PreferenceScreen; import edu.northwestern.cbits.purple_robot_manager.R; import edu.northwestern.cbits.purple_robot_manager.logging.LogManager; import edu.northwestern.cbits.purple_robot_manager.probes.Probe; public class NfcProbe extends Probe { private static final String ENABLED = "config_probe_nfc_enabled"; private static final boolean DEFAULT_ENABLED = true; @Override public String getPreferenceKey() { return "built_in_nfc"; } @Override public String name(Context context) { return "edu.northwestern.cbits.purple_robot_manager.probes.builtin.NfcProbe"; } @Override public String title(Context context) { return context.getString(R.string.title_nfc_probe); } @Override public String probeCategory(Context context) { return context.getResources().getString(R.string.probe_sensor_category); } @Override public boolean isEnabled(final Context context) { SharedPreferences prefs = Probe.getPreferences(context); if (super.isEnabled(context)) { return prefs.getBoolean(NfcProbe.ENABLED, NfcProbe.DEFAULT_ENABLED); } return false; } @SuppressWarnings("deprecation") @Override public PreferenceScreen preferenceScreen(final Context context, PreferenceManager manager) { PreferenceScreen screen = super.preferenceScreen(context, manager); screen.setTitle(this.title(context)); screen.setSummary(R.string.summary_nfc_probe_desc); CheckBoxPreference enabled = new CheckBoxPreference(context); enabled.setTitle(R.string.title_enable_probe); enabled.setKey(NfcProbe.ENABLED); enabled.setDefaultValue(NfcProbe.DEFAULT_ENABLED); screen.addPreference(enabled); return screen; } @Override public String summary(Context context) { return context.getString(R.string.summary_nfc_probe_desc); } @Override public void enable(Context context) { SharedPreferences prefs = Probe.getPreferences(context); Editor e = prefs.edit(); e.putBoolean(NfcProbe.ENABLED, true); e.commit(); } @Override public void disable(Context context) { SharedPreferences prefs = Probe.getPreferences(context); Editor e = prefs.edit(); e.putBoolean(NfcProbe.ENABLED, false); e.commit(); } @Override public String summarizeValue(Context context, Bundle bundle) { String tagId = bundle.getString("TAG_ID"); return String.format(context.getResources().getString(R.string.summary_nfc_probe), tagId); } }